package com.ds.infra.ibatis.mapping;

import lombok.Data;

import java.util.List;

/**
 * 作用：映射语句对象，封装了SQL语句信息，包括SQL语句ID、SQL语句、类型等。
 *
 * @author WeiShaoying
 */
@Data
public class MappedStatement {

    // sql语句ID, 命名空间+方法名，例如：com.ds.infra.ibatis.UserMapper.selectById
    private String id;

    // sql语句
    private String sql;

    // SQL命令类型
    private SqlCommandType sqlCommandType;

    // 返回值类型
    private Class<?> resultType;

    // 是否有参数，默认为false
    private boolean hasParameters;

    // 处理后的SQL语句，即替换占位符后的SQL
    private String processedSql;

    // 参数名列表，用于根据参数名获取参数值，例如：["id", "name"]
    private List<String> parameterNames;
}
